﻿namespace System.NETool;

public static class FileEx
{
    /// <summary>
    /// 尝试删除指定的文件。
    /// </summary>
    /// <param name="file">要删除的文件路径。</param>
    /// <returns>如果文件不存在或成功删除，返回 true；否则返回 false。</returns>
    public static bool TryDelete(string file)
    {
        // 如果文件不存在，直接返回 true
        if (!File.Exists(file)) return true;

        try
        {
            // 尝试删除文件
            File.Delete(file);
            // 检查文件是否已被删除
            return true;
        }
        catch (IOException ioEx)
        {
            // 捕获IO异常并输出错误信息
            Console.WriteLine($"{file}: IO Exception - {ioEx.Message}");
        }
        catch (UnauthorizedAccessException uaEx)
        {
            // 捕获未授权访问异常并输出错误信息
            Console.WriteLine($"{file}: Unauthorized Access - {uaEx.Message}");
        }
        catch (Exception ex)
        {
            // 捕获其他异常并输出错误信息
            Console.WriteLine($"{file}: {ex.Message}");
        }

        // 如果捕获到异常，返回 false
        return false;
    }
}
